﻿#region

using System;

#endregion

namespace BuildMotion.MotionTracker.Common
{
    /// <summary>
    /// Use to store information about the tag request. 
    /// </summary>
    public class TagContext
    {
        private string action;
        private string campaign;
        private string referrer;
        private string site;
        private Guid tagContextId;
        private string url;

        /// <summary>
        /// Initializes a new instance of the <see cref="TagContext"/> class.
        /// </summary>
        /// <param name="site">The site.</param>
        /// <param name="campaign">The campaign.</param>
        /// <param name="action">The action.</param>
        /// <param name="url">The URL.</param>
        /// <param name="referrer">The referrer.</param>
        public TagContext(string site, string campaign, string action, string url, string referrer)
        {
            this.site = site;
            this.campaign = campaign;
            this.action = action;
            this.url = url;
            this.referrer = referrer;
        }

        /// <summary>
        /// Gets or sets the site.
        /// </summary>
        /// <value>The site.</value>
        public string Site
        {
            get { return site; }
            set { site = value; }
        }

        /// <summary>
        /// Gets or sets the campaign.
        /// </summary>
        /// <value>The campaign.</value>
        public string Campaign
        {
            get { return campaign; }
            set { campaign = value; }
        }

        /// <summary>
        /// Gets or sets the action.
        /// </summary>
        /// <value>The action.</value>
        public string Action
        {
            get { return action; }
            set { action = value; }
        }

        /// <summary>
        /// Gets or sets the URL.
        /// </summary>
        /// <value>The URL.</value>
        public string Url
        {
            get { return url; }
            set { url = value; }
        }

        /// <summary>
        /// Gets or sets the referrer.
        /// </summary>
        /// <value>The referrer.</value>
        public string Referrer
        {
            get { return referrer; }
            set { referrer = value; }
        }

        /// <summary>
        /// Gets or sets the tag context id.
        /// </summary>
        /// <value>The tag context id.</value>
        public Guid TagContextId
        {
            get { return tagContextId; }
            set { tagContextId = value; }
        }
    }
}